package shujia.day06.bao2;
/*
    返回值类型
        基本类型: 当基本数据类型作为方法的返回值类型的时候，方法结束后，返回对应类型的数值
        引用类型:
            类：当开发时一个方法的返回值类型是一个类的时候，方法中要返回该类或者该类的子类对象
            抽象类：当开发时一个方法的返回值类型是一个抽象类的时候，方法中要返回该抽象类具体的子类对象
            接口：当开发时一个方法的返回值类型是一个接口的时候，方法中要返回实现了该接口的具体子类对象

 */
interface Inter1{
    void fun1();
}

class Inter1Impl implements Inter1{
    @Override
    public void fun1() {
        System.out.println("天天向上！");
    }
}

class Student3{
    public Inter1 show1(){
        return new Inter1Impl();
    }
}

public class StudentDemo3 {
    public static void main(String[] args) {
//        Student3 student3 = new Student3();
//
//        Inter1 i1 = student3.show1(); //Inter1 i1 = new Inter1Impl()
//        // 将来我们使用别人的方法可能也会得到一个对象，但是方法的返回值类型是一个接口
//        // 所以要想知道某一个方法怎么实现的，应该去找对应的实现类
//        i1.fun1();

        //如果将来调用完一个方法之后会得到一个对象，那么我们就可以继续调用方法
        //像这样方法调用后继续调用方法这样的编程形式，称之为链式编程
        new Student3()
                .show1()
                .fun1();


    }
}
